package com.itheima.game2;

import javax.swing.*;

/*
1：新建一个模块：itheima-picture-puzzle；在模块的src下新建一个包com.itheima

2：在com.itheima这个包下定义类：PictureFrame，继承自JFrame

3：在PictureFrame类中编写无参构造方法，在构造方法中调用两个方法：

第一个方法：initFrame()，用于窗体的基本设置

第二个方法：setVisible(true)，用于设置窗体可见

4：在initFrame()方法中编写代码，进行窗体的基本设置

窗体大小

窗体标题

窗体居中

窗体关闭时退出应用程序

窗体位于其他窗口之上

取消窗体默认布局




* */
public class PictureFrame extends JFrame {
    //空参构造
    public PictureFrame() {
        //用于窗体设置
        initFrame();
        //绘制基本组件
        printView();
        //设置窗体可见
        this.setVisible(true);
    }

    //方法initFrame()
    //用于窗体的基本设置
    public void initFrame() {
        //窗体大小
        this.setSize(960, 565);
        //窗体标题
        this.setTitle("动漫拼图");

        //窗体居中
        this.setLocationRelativeTo(null);

        //窗体关闭时退出应用程序
        this.setDefaultCloseOperation(3);
        //窗体位于其他窗口之上
        this.setAlwaysOnTop(true);
        //取消默认布局
        this.setLayout(null);


    }

    //绘制窗体的基本组件 printView
    //成员方法,功能
   /* 1：定义方法，用于窗体上的组件绘制：paintView()

            2：按照如下组件绘制
            标题图片
            面板图片，存储着将来要移动的图片
            参照图
            上按钮
            左按钮
            下按钮
            右按钮
            求助按钮
            重置按钮

        3：在构造方法中调用paintView()方法*/
    public void printView() {
        //标题组件
        JLabel titleLabel = new JLabel(new ImageIcon("day09\\imgs\\title.png"));
        //设置大小
        titleLabel.setBounds(245, 27, 232, 57);
        //添加到窗体上
        this.add(titleLabel);

        //定义二维数组,表示图片的编号--->用格式1---->简化格式-->静态赋值
        int[][] datas = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}
        };

        //创建JPanel容器面板 用于拼图的部分
        JPanel imagePanel = new JPanel();
        //设置大小
        imagePanel.setBounds(150, 114, 360, 360);
        imagePanel.setLayout(null);//取消默认布局
        //遍历for循环得到所有图片,得到图片编号
        for (int i = 0; i < datas.length; i++) {
            for (int j = 0; j < datas[i].length; j++) {
                //通过JLabel加载图片
                JLabel imageLabel = new JLabel(new ImageIcon("day09\\imgs\\" + datas[i][j] + ".png"));
                //设置图片的大小
                imageLabel.setBounds(j * 90, i * 90, 90, 90);
                //将图片加到面板上
                imagePanel.add(imageLabel);
            }
        }
        //将JPanel面板加到窗体上
        this.add(imagePanel);
    }

}
